/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Asignaciones;

import Entidades.Asignacionperiodoaula;
import Entidades.Controlaulas;
import Entidades.Estado;
import Entidades.Horarioaula;
import Entidades.Periodo;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Esta clase tiene por mision ser un objeto auxiliar y ver un horario con su
 * respectivo estado
 *
 * @author Isaac Cifuentes <isaaccivan@gmail.com>
 */
public class HorarioAulas {
   SimpleDateFormat formateador = new SimpleDateFormat("hh:mm");//permite mostrar solo la hora y los minutos
       Asignacionperiodoaula diaperiodos; //registros de tipo Asignacionperiodocatedratico correspondiente al dia 
    Periodo misperidosdeldia;//un periodo
    Controlaulas controladoraula = null;
    Horarioaula dia;
    Estado estadoActual;
    /**
     * *
     * Variables para los nombres
     */
    String npInicio = "";
    String npFinal = "";
    String ncomentario = "";
    String nFecha = "";
    String nestado = "";
    String nombredia;//nombre del dia;
public HorarioAulas(Horarioaula dia){
this.dia=dia;
}
    /**
     * *
     * Constructor sin argumentos
     */
    public HorarioAulas() {
    }

    /**
     * *
     * @autor Isaac Cifuentes <isaaccivan@gmail.com>
     * @param el dia dia
     * @param el periodo
     */
    public HorarioAulas(Horarioaula dia, Periodo p) {
        this.dia = dia;
        this.misperidosdeldia = p;
        CrearHorario();

    }

    /**
     * *
     *Metodo auxiliar
     * @param el dia que queremos ingresar
     * @param el periododo que se ingresara
     * @param el control del aulta
     */
    public HorarioAulas(Horarioaula dia, Periodo p, Controlaulas c) {
        this.dia = dia;
        this.misperidosdeldia = p;
        this.controladoraula = c;
        CrearHorario();
    }
/***
 * Metodo para llenar los campos necesarios
 */
    private void CrearHorario() {
        //Collection   Asignacionperiodoaula=this.nuevo.
        this.nombredia = this.dia.getDia();
        this.npInicio=formatoAmigable(this.misperidosdeldia.getHoraInicio());
        this.npFinal = formatoAmigable(this.misperidosdeldia.getHoraFin());
              if (controladoraula != null) {
            this.nFecha = this.controladoraula.getFecha().toString();
            //this.ncomentario = this.controladoraula.getCometario();
            this.estadoActual=controladoraula.getEstadoidEstado();
            this.nestado = this.estadoActual.getNombre();
           }
    }

    public String getpInicio() {
        return npInicio;
    }

    public String getpFinal() {
        return npFinal;
    }

    public String getFecha() {
        return nFecha;
    }

    public String getEstado() {
        return nestado;
    }

    public String getComentario() {
        return ncomentario;
    }

    public Estado getEstadoActual() {
        return estadoActual;
    }

   
    public void setDiaperiodos(Asignacionperiodoaula diaperiodos) {
        this.diaperiodos = diaperiodos;
    }

    public void setDia(Horarioaula dia) {
        this.dia = dia;
    }

    public void setControladoraula(Controlaulas controladoraula) {
        this.controladoraula = controladoraula;
    }

    public void setMisperidosdeldia(Periodo misperidosdeldia) {
        this.misperidosdeldia = misperidosdeldia;
    }

   
    

    public String getNombredia() {
        return nombredia;
    }

    /**
     * *
     * Metodod auxiliar que permite imprimir el horario actual
     *
     * @return
     */
    public String imprimir() {
        return this.nombredia + " " + this.npInicio + " " + this.npFinal + " " + this.nFecha + " " + this.ncomentario + " " + this.nestado;

    }
   /***
    * Metodo para mejorar la visibilidad del campo date
    * @param la fehca a la que le queremos dar formato 
    * @return un string con formato hh:mm
    */
    public String formatoAmigable(Date fecha){
   return formateador.format(fecha); 
      }
}
